Methods and systems for block-based residual upsampling

ABSTRACT

Embodiments of the present invention comprise methods and systems for block-based residual upsampling. Some embodiments of the present invention comprise methods and systems for residual upsampling for spatially scalable video coding.

RELATED REFERENCES

This application claims the benefit of U.S. Provisional Patent Application No. 60/750,744, entitled “Methods and Systems for Block-Based Residual Upsampling,” filed Dec. 15, 2005, invented by Shijun Sun.

FIELD OF THE INVENTION

Embodiments of the present invention comprise methods and systems for block-based residual upsampling. Some embodiments of the present invention comprise methods and systems for residual upsampling for spatially scalable video coding.

BACKGROUND

H.264/MPEG-4 AVC [Joint Video Team of ITU-T VCEG and ISO/IEC MPEG, “Advanced Video Coding (AVC)—4^(th) Edition,” ITU-T Rec. H.264 and ISO/IEC 14496-10 (MPEG4-Part 10), January 2005], which is incorporated by reference herein, is a video codec specification that uses macroblock prediction followed by residual coding to reduce temporal and spatial redundancy in a video sequence for compression efficiency. Spatial scalability refers to a functionality in which parts of a bitstream may be removed while maintaining rate-distortion performance at any supported spatial resolution. Single-layer H.264/MPEG-4 AVC does not support spatial scalability. Spatial scalability is supported by the Scalable Video Coding (SVC) extension of H.264/MPEG-4 AVC.

The SVC extension of H.264/MPEG-4 AVC [Working Document 1.0 (WD-1.0) (MPEG Doc. N6901) for the Joint Scalable Video Model (JSVM)], which is incorporated by reference herein, is a layered video codec in which the redundancy between spatial layers is exploited by inter-layer prediction mechanisms. Three inter-layer prediction techniques are included into the design of the SVC extension of H.264/MPEG-4 AVC: inter-layer motion prediction, inter-layer residual prediction, and inter-layer intra texture prediction.

Previously, only dyadic spatial scalability was addressed by SVC. Dyadic spatial scalability refers to configurations in which the ratio of picture dimensions between two successive spatial layers is a power of 2. New tools that manage configurations in which the ratio of picture dimensions between successive spatial layers is not a power of 2 and in which the pictures of the higher level can contain regions that are not present in corresponding pictures of the lower level, referred to as non-dyadic scaling with cropping window, have been proposed.

All of the inter-layer prediction methods comprise picture up-sampling. Picture up-sampling is the process of generating a higher resolution image from a lower resolution image. Some picture up-sampling processes comprise sample interpolation. The prior up-sampling process used in the SVC design was based on the quarter luma sample interpolation procedure specified in H.264 for inter prediction. When applied to spatially scalable coding, the prior method has the following two drawbacks: the interpolation resolution is limited to quarter samples, and thus, is not supportive of non-dyadic scaling; and half-sample interpolation is required in order to get a quarter-sample position making this method computationally cumbersome.

SUMMARY

Some embodiments of the present invention are related to the Scalable Video Coding (SVC) extension of H.264/AVC. The SVC extension of H.264 currently (in Joint Draft version 4) only addresses spatial scalability between progressive video sequences (or frames). Some embodiments of the present invention relate to the resampling (down-/up-sampling) processes involving interlaced materials.

Some embodiments of the present invention comprise block-based residual upsampling. These embodiments may comprise interpolation of an enhancement layer from a base layer that is divided into blocks of a fixed size. In some embodiments, the base layer block size is independent of transform block selection and sizing. In these embodiments, an enhancement layer pixel value is determined from information residing in the corresponding block of the base layer.

The foregoing and other objectives, features, and advantages of the invention will be more readily understood upon consideration of the following detailed description of the invention taken in conjunction with the accompanying drawings.

BRIEF DESCRIPTION OF THE SEVERAL DRAWINGS

FIG. 1 is diagram illustrating the geometrical relationship between an enhancement layer and a base layer;

FIG. 2 is a diagram showing the relative location of a sample in an enhancement layer and a base layer;

FIG. 3 is a flow diagram of an embodiment of the present invention comprising interpolation filtering in two directions;

FIG. 4 is a diagram illustrating the relationship between macroblocks in an enhancement layer and a base layer;

FIG. 5 is a diagram illustrating the relationship between macroblocks in an enhancement layer and a base layer;

FIG. 6 is a diagram illustrating an embodiment of the present invention comprising field interpolation;

FIG. 7 is a diagram illustrating an embodiment of the present invention comprising field interpolation and filter data selection based on sample position;

FIG. 8 is a diagram illustrating an embodiment of the present invention comprising field interpolation and filter data selection based on sample position phase; and

FIG. 9 is a diagram illustrating transform blocks, upsampling blocks, target pixel position and corresponding base layer position relationships.

DETAILED DESCRIPTION OF EXEMPLARY EMBODIMENTS

Embodiments of the present invention will be best understood by reference to the drawings, wherein like parts are designated by like numerals throughout. The figures listed above are expressly incorporated as part of this detailed description.

It will be readily understood that the components of the present invention, as generally described and illustrated in the figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following more detailed description of the embodiments of the methods and systems of the present invention is not intended to limit the scope of the invention but it is merely representative of the presently preferred embodiments of the invention.

Elements of embodiments of the present invention may be embodied in hardware, firmware and/or software. While exemplary embodiments revealed herein may only describe one of these forms, it is to be understood that one skilled in the art would be able to effectuate these elements in any of these forms while resting within the scope of the present invention.

H.264/MPEG-4 AVC [Joint Video Team of ITU-T VCEG and ISO/IEC MPEG, “Advanced Video Coding (AVC)—4^(th) Edition,” ITU-T Rec. H.264 and ISO/IEC 14496-10 (MPEG4-Part 10), January 2005] is incorporated herein by reference.

The SVC extension of H.264/MPEG-4 AVC [Working Document 1.0 (WD-1.0) (MPEG Doc. N6901) for the Joint Scalable Video Model (JSVM)] is incorporated herein by reference.

For the purposes of this specification and claims, the term “picture” may comprise an array of pixels, a digital image, a subdivision of a digital image, a data channel of a digital image or another representation of image data. The term “picture” may comprise primary image data, residual image data or other image data.

FIG. 1 shows two pictures corresponding to an image picture: a lower spatial picture 10, also referred to as a base spatial picture or base-layer picture, and a higher spatial picture 100, also referred to as an enhancement spatial picture or enhancement-layer picture. The base spatial picture 10 may have lower spatial resolution than the enhancement spatial picture 100, as shown in FIG. 1. The base spatial picture 10 may not include the same spatial region as that of the enhancement spatial picture 100, as shown in FIG. 1. Shown in FIG. 1 is a base spatial picture 10 corresponding to a spatial region 110 cropped from the enhancement spatial picture 100. The base-layer picture 10 may be an interlaced-frame picture comprising an upper and a lower field, or a progressive-frame picture. The enhancement-layer picture 100 may be an interlaced-frame picture comprising an upper and a lower field, or a progressive-frame picture

In some embodiments of the present invention, the base spatial picture and the enhancement spatial picture may correspond to two spatial layers in a scalable video coder/decoder (codec).

The width 101 of the enhancement spatial picture 100 and the height 102 of the enhancement spatial picture 100 may be denoted w_(enh) and h_(enh), respectively. The width 11 and the height 12 of the base spatial picture 10 may be denoted w_(base) and h_(base), respectively. The base spatial picture 10 may be a sub-sampled version of a sub-region 110 of the enhancement spatial picture 100 positioned at enhancement spatial picture coordinates (x_(orig), y_(orig)) 103. The position 103 represents the position of the upper-left corner of the cropping window 110. The width 111 and the height 112 of the sub-region 110 may be denoted w_(extract) and h_(extract), respectively. The parameters (x_(orig), y_(orig), w_(extract), h_(extract), w_(base), h_(base)) define the relationship between the higher spatial picture 100 and the lower spatial picture 10.

Picture up-sampling may refer to the generation of a higher spatial resolution image from a lower spatial resolution image. In some embodiments, up-sampling may refer to increasing resolution in any dimension not limited to spatial dimensions or a temporal dimension. FIG. 2 shows a pixel location 220 in a higher spatial resolution image 200. In FIG. 2, pixel location 220 has a corresponding location 22 in the lower spatial resolution image 20. The location 220 may align directly with a pixel location in the lower spatial resolution image 20, or it may not align directly with a pixel location in the lower spatial resolution image 20. In FIG. 2, the location 22 is shown located between four base-layer pixels, 21, 23, 24, and 25.

Some embodiments of the present invention comprise methods and systems for direct interpolation of the pixels of the enhancement spatial picture 200 given the base spatial picture 20 wherein the ratios of dimensions are not limited to a power of 2. Some embodiments of the present invention comprise up-sampling on the entire picture of the base spatial picture 20. Other embodiments of the present invention comprise block-by-block up-sampling of the base spatial picture 20. Some embodiments of the present invention comprise up-sampling in one direction followed by up-sampling in another direction. For up-sampling, determining the corresponding location in the base-layer picture of a sample position in the enhancement layer may be required. This determination may depend on the format, progressive or interlace, of the base-layer picture and the enhancement-layer picture.

Some embodiments of the present invention comprise methods and systems for direct interpolation of the pixels of the base spatial picture 20 given the enhancement spatial picture 200 wherein the ratios of dimensions are not limited to a power of 2. Some embodiments of the present invention comprise down-sampling on the entire picture of the enhancement spatial picture 200. Other embodiments of the present invention comprise block-by-block down-sampling of the base spatial picture 200. Some embodiments of the present invention comprise down-sampling in one direction followed by down-sampling in another direction. For down-sampling, determining the corresponding location in the enhancement-layer picture of a sample position in the base layer may be required. This determination may depend on the format, progressive or interlace, of the base-layer picture and the enhancement-layer picture.

Progressive-Material Embodiments

If both the base-layer picture and the enhancement-layer picture are progressive frames, then for a sample position (x, y) in the enhancement spatial picture in units of integer samples, the corresponding position (p_(x,L)(x), p_(y,L)(y)) in the base spatial picture, in units of 1/R_(L) samples, may be given by:

$\begin{matrix} \left\{ {\begin{matrix} {{p_{x,L}(x)} = {\left\lbrack {{\left( {x - x_{orig}} \right) \cdot w_{base} \cdot R_{L}} + {\frac{R_{L}}{2}\left( {w_{base} - w_{extract}} \right)}} \right\rbrack/w_{extract}}} \\ {{p_{y,L}(y)} = {\left\lbrack {{\left( {y - y_{orig}} \right) \cdot h_{base} \cdot R_{L}} + {\frac{R_{L}}{2}\left( {h_{base} - h_{extract}} \right)}} \right\rbrack/h_{extract}}} \end{matrix},} \right. & (1) \end{matrix}$ where the parameters (x_(orig), y_(orig), w_(extract), h_(extract), w_(base), h_(base)) define the relationship between the higher spatial picture 100 and the lower spatial picture 10, as in FIG. 1, and R_(L) is the interpolation resolution. Some embodiments comprise one-sixteenth-sample resolution interpolation, and in such embodiments R_(L) is 16.

In some embodiments, the corresponding position (p_(x,L)(x), p_(y,L)(y)) in the base spatial picture 10 may be given by:

$\begin{matrix} \left\{ {\begin{matrix} {{p_{x,L}(x)} = {\left\lbrack {{\left( {x - x_{orig}} \right) \cdot w_{base} \cdot R_{L}} + {\frac{R_{L}}{2}\left( {w_{base} - w_{extract}} \right)}} \right\rbrack//w_{extract}}} \\ {{p_{y,L}(y)} = {\left\lbrack {{\left( {y - y_{orig}} \right) \cdot h_{base} \cdot R_{L}} + {\frac{R_{L}}{2}\left( {h_{base} - h_{extract}} \right)}} \right\rbrack//h_{extract}}} \end{matrix},} \right. & \left( {1a} \right) \end{matrix}$

where, as above, the parameters (x_(orig), y_(orig), w_(extract), h_(extract), w_(base), h_(base)) define the relationship between the higher spatial picture 100 and the lower spatial picture 10, as in FIG. 1, R_(L) is the interpolation resolution, and “// ” comprises a computationally simplified division operation, such as integer division with rounding. The sample positions may not be limited to powers of 2, and direct calculation of a sample position allows for direct interpolation of picture values at that sample position.

For interpolation resolution of R_(L)=16, the corresponding position in the base-layer picture becomes:

$\begin{matrix} \left\{ {\begin{matrix} {{p_{x,L}(x)} = {\left\lbrack {{\left( {x - x_{orig}} \right) \cdot w_{base} \cdot 16} + {8 \cdot \left( {w_{base} - w_{extract}} \right)}} \right\rbrack//w_{extract}}} \\ {{p_{y,L}(y)} = {\left\lbrack {{\left( {y - y_{orig}} \right) \cdot h_{base} \cdot 16} + {8 \cdot \left( {h_{base} - h_{extract}} \right)}} \right\rbrack//h_{extract}}} \end{matrix},} \right. & \left( {1b} \right) \end{matrix}$ as described above with R_(L)=16.

For a chroma sample position (x_(c), y_(c)) in the enhancement picture in units of single chroma samples, its corresponding position in the base picture (p_(x,c)(x_(c)), p_(y,c)(y_(c))) in units of one-sixteenth chroma samples of the base picture may be derived as:

$\begin{matrix} \left\{ {\begin{matrix} {{p_{x,c}\left( x_{c} \right)} = {\left\lbrack {{\left( {x_{c} - x_{{orig},c}} \right) \cdot w_{{base},c} \cdot R_{C}} + {\frac{R_{C}}{4}\left( {2 + p_{{enh},x}} \right)w_{{base},c}} - {\frac{R_{C}}{4}\left( {2 + p_{{base},x}} \right)w_{{extract},c}}} \right\rbrack//w_{{extract},c}}} \\ {{p_{y,c}\left( y_{c} \right)} = {\left\lbrack {{\left( {y_{c} - y_{{orig},c}} \right) \cdot h_{{base},c} \cdot R_{C}} + {\frac{R_{C}}{4}\left( {2 + p_{{enh},y}} \right)h_{{base},c}} - {\frac{R_{C}}{4}\left( {2 + p_{{base},y}} \right)h_{{extract},c}}} \right\rbrack//h_{{extract},c}}} \end{matrix},} \right. & (2) \end{matrix}$ in which R_(C)=16, (x_(orig,c), y_(orig,c)) represents the position of the upper-left corner of the cropping window in the current picture in units of single chroma samples of current picture, (w_(base,c), h_(base,c)) is the resolution of the base picture in units of single chroma samples of the base picture, (w_(extract,c), h_(extract,c)) is the resolution of the cropping window in units of the single chroma samples of current picture, (p_(base,x), p_(base,y)) represents the relative chroma phase shift of the base picture in units of quarter chroma samples of the base picture, and (p_(enh,x), p_(enh,y)) represents the relative chroma phase shift of the current picture in units of quarter chroma samples of the current picture.

Similarly, when the interpolation resolution is R_(L)=16, the corresponding position in the base picture (p_(x,c), p_(y,c)) in units of 1/16 chroma samples of the base picture becomes:

$\begin{matrix} \left\{ {\begin{matrix} {{p_{x,c}\left( x_{c} \right)} = {\left\lbrack {{\left( {x_{c} - x_{{orig},c}} \right) \cdot w_{{base},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{enh},x}} \right)}w_{{base},c}} - {{4 \cdot \left( {2 + p_{{base},x}} \right)}w_{{extract},c}}} \right\rbrack//w_{{extract},c}}} \\ {{p_{y,c}\left( y_{c} \right)} = {\left\lbrack {{\left( {y_{c} - y_{{orig},c}} \right) \cdot h_{{base},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{enh},y}} \right)}h_{{base},c}} - {{4 \cdot \left( {2 + p_{{base},y}} \right)}h_{{extract},c}}} \right\rbrack//h_{{extract},c}}} \end{matrix},} \right. & \left( {2a} \right) \end{matrix}$ where (x_(orig,c), y_(orig,c)) represents the position of the upper-left corner of the cropping window in the enhancement picture in units of single chroma samples of the current picture, (w_(base,c), h_(base,c)) is the resolution of the base picture in units of single chroma samples of the base picture, (w_(extract,c), h_(extract,c)) is the resolution of the cropping window in units of the single chroma samples of enhancement picture, (p_(base,x), p_(base,y)) represents the relative chroma phase position of the base picture in units of quarter chroma samples of the base picture, and (p_(enh,x), p_(enh,y)) represents the relative chroma phase position of the enhancement picture in units of quarter chroma samples of the enhancement picture.

Based on the phase positions derived by Eqs. 1-2, up-sampling filters can be chosen, in some embodiments, from a pre-defined filter table for the interpolation process. Details are described in a section below. Other filter selection and/or calculation processes, which are related to the phase position, may also be used.

Given a luma sample in the low-resolution picture at position (x, y) in units of single luma samples of the low-resolution picture, its corresponding position in the high-resolution picture (p_(x,L), p_(y,L)) in units of one-sixteenth luma samples of the high-resolution picture may be derived as:

$\begin{matrix} \left\{ {\begin{matrix} {p_{x,L} = {{{16 \cdot x_{orig}} + \left\lbrack {{x \cdot w_{extract} \cdot 16} + {8 \cdot \left( {w_{extract} - w_{base}} \right)}} \right\rbrack}//w_{base}}} \\ {p_{y,L} = {{{16 \cdot y_{orig}} + \left\lbrack {{y \cdot h_{extract} \cdot 16} + {8 \cdot \left( {h_{extract} - h_{base}} \right)}} \right\rbrack}//h_{base}}} \end{matrix}.} \right. & (3) \end{matrix}$

Given a chroma sample in the low-resolution picture at position (x_(c), y_(c)) in units of single chroma samples of the low-resolution picture, its corresponding position in the high-resolution picture (p_(x,c), p_(y,c)) in units of one-sixteenth chroma samples of the high-resolution picture may be derived as:

$\begin{matrix} \left\{ {\begin{matrix} {p_{x,c} = {{{16 \cdot x_{{orig},c}} + \left\lbrack {{x_{c} \cdot w_{{extract},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{base},x}} \right)}w_{{extract},c}} - {{4 \cdot \left( {2 + p_{{enh},x}} \right)}w_{base}}} \right\rbrack}//w_{{base},c}}} \\ {p_{y,c} = {{{16 \cdot y_{{orig},c}} + \left\lbrack {{y_{c} \cdot h_{{extract},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{base},y}} \right)}h_{{extract},c}} - {{4 \cdot \left( {2 + p_{{enh},y}} \right)}h_{base}}} \right\rbrack}//h_{{base},c}}} \end{matrix}.} \right. & (4) \end{matrix}$

Based on sampling position derived from Eqs. 3-4, down-sampling filters can be selected from a pre-defined set of filters, in some embodiments. However, the down-sampling process is not a normative part of the SVC.

Some embodiments of the current invention are illustrated in FIG. 3. Interpolation in the x- and y-directions may be done in separate passes, 300 and 30, respectively. In some embodiments, each pass may be performed within a macroblock or another sub-division of the image. In other embodiments, each pass may be performed within the entire image.

For a sample position in the enhancement layer 31, i.e., the location of an enhancement-layer pixel, the corresponding position in the base layer 32 may be determined 301. The offset, or phase, in each direction, y-position phase 33 and x-position phase 34, of the sample in the base layer from an integer base-layer pixel location may be determined, 302 and 303, respectively, from the corresponding base-layer pixel position 32 of an enhancement-layer pixel position 31. The offset or phase may be determined in units of interpolation resolution. For example, for an interpolation resolution of one-sixteenth, a phase of 0 may correspond to no offset from a base-layer pixel position. A phase of 8 may correspond to an enhancement-layer pixel that falls, in one dimension, half-way between base-layer pixel positions.

The interpolation filter coefficients may be determined by look-up-table in which the y-position phase 33 may be the index when interpolating in the y-direction, or the x-position phase 34 may be the index when interpolating in the x-direction. The position interpolation center, for a given direction, is the pixel location in the base layer with respect to which the position phase may be measured. In some embodiments of the current invention, the position interpolation center is the pixel location to which the filter is centered.

FIG. 4 shows the same geometry as that shown in FIG. 1 with an overlay of macroblocks. An exemplary macroblock in the enhancement spatial layer 100 may be shown by 140. An exemplary macroblock in the base spatial layer 10 may be shown by 40. A macroblock 142 in the enhancement spatial layer 100 may be entirely within the cropped region 110. A macroblock 144 in the enhancement spatial layer 100 may be entirely outside the cropped region 110. A macroblock 146 in the enhancement spatial layer 100 may be in both the cropped region 110 and outside of the cropped region 110.

FIG. 5 shows an exemplary overlay of the macroblocks of the up-sampled base spatial layer 50 on the enhancement spatial layer 100. The dashed lines show the up-sampled base spatial layer macroblocks. Block 51 is an exemplary up-sampled macroblock from the base spatial layer. Some macroblocks, for example 52, in the enhancement spatial layer 100 have no base spatial layer corresponding block. Other macroblocks in the enhancement spatial layer 100, have one to several corresponding base spatial layer macroblocks. Block 53 in the enhancement spatial layer 100 has one corresponding block, 54, in the base spatial layer. Block 55 in the enhancement spatial layer 100 has four corresponding blocks, base spatial layer blocks 56, 57, 58, and 59, in the base spatial layer.

Interpolation—Down-Sampling

Down-sampling filters can be selected from a pre-defined set of filters, in some embodiments. Down-sampling filters may also be calculated on-the-fly or modified in relation to position or other image parameters. However, the down-sampling process is not a normative part of the SVC.

Alternative Resampling Filters

Interlaced-materials-related embodiments described above comprise solutions for resampling phase position issues, however the specific filter design is not fixed. In some embodiments, the default direct interpolation filters described above and in the incorporated JVT documents in relation to non-interlaced materials may be applied to up-sampling of interlaced materials as well. However, there is no restriction on alternative filter designs, including sequence- or picture-level adaptive filter selections for other embodiments.

Other Embodiments

As specified in the SVC, the residual interpolation positions may be derived using the same equations for texture interpolation; however, the simple bilinear interpolation filters may be applied for the residual up-sampling in SVC-related embodiments to be consistent with current SVC design.

Many equations in this document have been explicitly written for direct interpolation with 1/16-sample accuracy. In other embodiments, the resampling accuracy may be modified to other than 1/16 sample.

Interlaced Material Embodiments

Some embodiments of the present invention are related to the Scalable Video Coding (SVC) extension of H.264/AVC. The SVC extension of H.264 currently (in Joint Draft version 4) only addresses spatial scalability between progressive video sequences (or frames). Some embodiments of the present invention address issues related to the resampling (down-/up-sampling) processes involving interlaced materials.

Some embodiments of the present invention comprise solutions for field-to-frame, frame-to-field, and field-to-field resampling processes. Some of these embodiments relate to a direct interpolation method with an interpolation resolution of 1/16 sample, however other interpolation resolutions and methods may be used.

Resampling Of Interlaced Materials

In some embodiments of the present invention, which handle interlaced materials, it may be assumed that all parameters (x_(orig), y_(orig), w_(extract), h_(extract), w_(base), h_(base)), (p_(base,x), p_(base,y)), and (p_(enh,x), p_(enh,y)) be defined as above for frame-based pictures; additionally, (y_(orig), h_(extract)) shall be multiples of 4. The following two new parameters φ_(enh,y) and φ_(base,y) may be used and defined for the generalized resampling processes.

$\begin{matrix} {\phi_{{enh},y} = \left\{ \begin{matrix} {p_{{enh},y} - 1} & {{for}\mspace{14mu}{enhancement}\mspace{14mu}{top\_ filed}\mspace{11mu}\left( {4\text{:}2\text{:}0} \right)} \\ {p_{{enh},y} + 1} & {{for}\mspace{14mu}{enhancement}\mspace{14mu}{bot\_ field}\mspace{11mu}\left( {4\text{:}2\text{:}0} \right)} \\ {2 \cdot p_{{enh},y}} & {{otherwise}\mspace{11mu}\left( {{{enhancement}\mspace{14mu}{frame}},{{etc}.}} \right)} \end{matrix} \right.} & (5) \\ {\phi_{{base},y} = \left\{ \begin{matrix} {p_{{base},y} - 1} & {{{for}\mspace{14mu}{base}\mspace{14mu}{top\_ filed}\mspace{11mu}\left( {4\text{:}2\text{:}0} \right)}\;} \\ {p_{{base},y} + 1} & {{for}\mspace{14mu}{base}\mspace{14mu}{bot\_ field}\mspace{11mu}\left( {4\text{:}2\text{:}0} \right)} \\ {2 \cdot p_{{base},y}} & {{otherwise}\mspace{11mu}\left( {{{base}\mspace{14mu}{frame}},{{etc}.}} \right)} \end{matrix} \right.} & (6) \end{matrix}$

The parameters φ_(enh,y) and φ_(base,y) represent the chroma vertical phase position in units of ⅛ chroma samples of the enhancement and base pictures (either field or frame), respectively.

Field-To-Field Resampling

In some embodiments, it may be required that the two corresponding field pictures be of the same parity (i.e., either top or bottom), although, in some other embodiments, these exemplary equations may be slightly modified to support cross-parity resampling. An exemplary application for field-to-field resampling is SD-to-1080i scalable coding.

Given a luma sample in the cropping window of the enhancement field at position (x, y) in units of single luma samples, its corresponding position in the base field (p_(x,L)(x), p_(y,L)(y)) in units of 1/16 luma samples of the base field can be derived as:

$\begin{matrix} \left\{ {{\begin{matrix} {{p_{x,L}(x)} = {\left\lbrack {{\left( {x - x_{orig}} \right) \cdot w_{base} \cdot 16} + {8 \cdot \left( {w_{base} - w_{extract}} \right)}} \right\rbrack//w_{extract}}} \\ {{p_{y,L}(y)} = {\left\lbrack {{\left( {y - y_{orig}^{\prime}} \right) \cdot h_{base} \cdot 16} + {8 \cdot \left( {h_{base} - h_{extract}} \right)}} \right\rbrack//h_{extract}}} \end{matrix}\mspace{85mu}{with}\mspace{85mu} y_{orig}^{\prime}} = {\frac{y_{orig}}{2}.}} \right. & (7) \end{matrix}$

Similarly, given a chroma sample in the enhancement picture at position (x_(c), y_(c)) in units of single chroma samples, its corresponding position in the base picture (p_(x,c)(x_(c)), p_(y,c)(y_(c))) in units of 1/16 chroma samples of the base picture can be derived as

$\begin{matrix} \left\{ {{\begin{matrix} {p_{x,c} = {\begin{bmatrix} \begin{matrix} {{\left( {x_{c} - x_{{orig},c}} \right) \cdot w_{{base},c} \cdot 16} +} \\ {{{4 \cdot \left( {2 + p_{{enh},x}} \right)}w_{{base},c}} -} \end{matrix} \\ {{4 \cdot \left( {2 + p_{{base},x}} \right)}w_{{extract},c}} \end{bmatrix}//w_{{extract},c}}} \\ {p_{y,c} = {\begin{bmatrix} \begin{matrix} {{\left( {y_{c} - y_{{orig},c}^{\prime}} \right) \cdot h_{{base},c} \cdot 16} +} \\ {{{2 \cdot \left( {4 + \phi_{{enh},y}} \right)}h_{{base},c}} -} \end{matrix} \\ {{2 \cdot \left( {4 + \phi_{{base},y}} \right)}w_{{extract},c}} \end{bmatrix}//h_{{extract},c}}} \end{matrix}{with}y_{{orig},c}^{\prime}} = {\frac{y_{{orig},c}}{2}.}} \right. & (8) \end{matrix}$

Based on the phase positions derived by Eqs. 7-8, up-sampling filters can be chosen from a pre-defined filter table, as described in exemplary embodiments above, for the interpolation process.

Similar to the up-sampling process, given a luma sample in the low-resolution field at position (x, y) in units of single luma samples of the low-resolution picture, its corresponding position in the high-resolution field (p_(x,L), p_(y,L)) in units of one-sixteenth luma samples of the high-resolution field can be derived as

$\begin{matrix} \left\{ \begin{matrix} {p_{x,L} = {{{16 \cdot x_{orig}} + \left\lbrack {{x \cdot w_{extract} \cdot 16} + {8 \cdot \left( {w_{extract} - w_{base}} \right)}} \right\rbrack}//w_{base}}} \\ {p_{y,L} = {{{16 \cdot y_{orig}^{\prime}} + \left\lbrack {{y \cdot h_{extract} \cdot 16} + {8 \cdot \left( {h_{extract} - h_{base}} \right)}} \right\rbrack}//h_{base}}} \end{matrix} \right. & (9) \end{matrix}$

Given a chroma sample in the low-resolution field at position (x_(c), y_(c)) in units of single chroma samples of the low-resolution picture, its corresponding position in the high-resolution field (p_(x,c), p_(y,c)) in units of one-sixteenth chroma samples of the high-resolution field can be derived as

$\begin{matrix} \left\{ \begin{matrix} {p_{x,c} = {{{16 \cdot x_{orig}} + \left\lbrack {{x_{c} \cdot w_{{extract},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{base},x}} \right)}w_{{extract},c}} - {{4 \cdot \left( {2 + p_{{enh},x}} \right)}w_{{base},c}}} \right\rbrack}//w_{{base},c}}} \\ {p_{y,c} = {{{16 \cdot y_{orig}^{\prime}} + \left\lbrack {{y_{c} \cdot h_{{extract},c} \cdot 16} + {{2 \cdot \left( {4 + \phi_{{base},y}} \right)}h_{{extract},c}} - {{2 \cdot \left( {4 + \phi_{{enh},y}} \right)}h_{{base},c}}} \right\rbrack}//h_{{base},c}}} \end{matrix} \right. & (10) \end{matrix}$

Based on sampling positions derived from Eqs. 9-10, down-sampling filters can be selected or calculated. In some embodiments, filters may be selected from a pre-defined set of filters.

The resampling process defined in this subsection can also be used for frame-to-frame resampling, where both frames are interlaced materials. In these cases, the field-to-field resampling may be applied to the top field pair and the bottom field pair, respectively.

Field-To-Frame Resampling

For field-to-frame resampling, in some embodiments, it may be assumed that the base picture is a field and the enhancement picture is a coincided frame. An exemplary application for field-to-frame resampling is SD-to-720p scalable coding.

In some embodiments, resampling design may be simplified by breaking down each of the up- and down-sampling processes into two stages, respectively.

For up-sampling, a field is up-sampled to a first field of the same parity using methods described above in relation to field-to-field resampling. Then the opposite parity field in the enhancement frame may be generated by interpolating the first field using a symmetric even-tap filter along the vertical direction. In some embodiments, a default filter for H.264 1/2 -sample interpolation may be applied.

Some embodiments of the present invention may be described with reference to FIG. 6. In these embodiments, a base layer field is upsampled 60 to an enhancement layer resolution. This upsampled field is then interpolated or otherwise modified to generate 62 an opposite-parity field. These matching fields may be combined to form an interlaced frame. In some embodiments, these fields may be processed to form a progressive frame.

In some embodiments of the present invention, illustrated in FIG. 7, a first resolution sample position corresponding to a second resolution location is determined 70. The first resolution sample position corresponding to the second resolution location may be an intermediate position between the pixels of a first resolution layer, such as a base layer. Based on this position, filter data may be obtained, selected or calculated 72. This filter data may then be used to filter 74 the first-resolution picture to produce a second resolution picture or field. In some embodiments, these pictures will be corresponding fields of an interlaced image. This second-resolution field may then be interpolated or otherwise processed to produce an opposite-parity field 76. The pair of second resolution fields may then make up an interlaced frame or may be further processed to make a progressive frame or some other image.

Some embodiments of the present invention may be described with reference to FIG. 8. In these embodiments, a first-resolution sample position may be determined 80 as was done in the previous exemplary embodiment described in relation to FIG. 7. A first-resolution phase offset may then be calculated 82 to describe the offset between a first-resolution pixel and the first-resolution sample position. This phase offset may then be used to select, obtain or calculate filter data 84. This filter data may then be used to filter the first-resolution picture 86 thereby producing a second-resolution filtered field. This filtered field may then be interpolated or otherwise processed to produce an opposite-parity field 88. These fields may then be further processed as described for other embodiments.

For down-sampling, a frame may first be down-sampled vertically to preserve the field of the same parity of the base field picture. Then the enhancement field may be down-sampled following processes described above in relation to field-to-field resampling. In some embodiments, a simple solution for the first step vertical down-sampling is to simply discard all even or odd lines of the frame.

Frame-To-Field Resampling

In some embodiments, for frame-to-field resampling, it may be assumed that the base picture is a frame and the enhancement picture is a field; additionally, the base frame may be coincided with the enhancement field. Processes described above in relation to field-to-field resampling can be applied for the scenario with slight modifications.

Given a luma sample in the cropping window of the enhancement field at position (x, y) in units of single luma samples, its corresponding position in the base frame (p_(x,L)(x), p_(y,L)(y))in units of 1/16 luma samples of the base frame may be derived as:

$\begin{matrix} \left\{ {{\begin{matrix} {{p_{x,L}(x)} = {\left\lbrack {{\left( {x - x_{orig}} \right) \cdot w_{base} \cdot 16} + {8 \cdot \left( {w_{base} - w_{extract}} \right)}} \right\rbrack//w_{extract}}} \\ {{p_{y,L}(y)} = {\left\lbrack {{\left( {y - y_{orig}} \right) \cdot h_{base}^{\prime} \cdot 16} + {8 \cdot \left( {h_{base}^{\prime} - h_{extract}} \right)}} \right\rbrack//h_{extract}}} \end{matrix}\mspace{79mu}{with}\mspace{76mu} y_{orig}^{\prime}} = {{\frac{y_{orig}}{2}\mspace{14mu}{and}\mspace{14mu} h_{base}^{\prime}} = {2 \cdot {h_{base}.}}}} \right. & (11) \end{matrix}$

Similarly, given a chroma sample in the enhancement picture at position (x_(c), y_(c)) in units of single chroma samples, its corresponding position in the base picture (p_(x,c)(x_(c)), p_(y,c)(y_(c))) in units of 1/16 chroma samples of the base picture may be derived as:

$\begin{matrix} \left\{ {{\begin{matrix} {{p_{x,c}\left( x_{c} \right)} = {\left\lbrack {{\left( {x_{c} - x_{{orig},c}} \right) \cdot w_{{base},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{enh},x}} \right)}w_{{base},c}} - {{4 \cdot \left( {2 + p_{{base},x}} \right)}w_{{extract},c}}} \right\rbrack//w_{{extract},c}}} \\ {{p_{y,c}\left( y_{c} \right)} = {\left\lbrack {{\left( {y_{c} - y_{{orig},c}^{\prime}} \right) \cdot h_{{base},c}^{\prime} \cdot 16} + {{2 \cdot \left( {4 + \phi_{{enh},y}} \right)}h_{{base},c}^{\prime}} - {{2 \cdot \left( {4 + \phi_{{base},y}} \right)}h_{{extract},c}}} \right\rbrack//h_{{extract},c}}} \end{matrix}\mspace{79mu}{with}\mspace{79mu} y_{{orig},c}^{\prime}} = {{\frac{y_{{orig},c}}{2}\mspace{14mu}{and}\mspace{14mu} h_{{base},c}^{\prime}} = {2 \cdot {h_{{base},c}.}}}} \right. & (12) \end{matrix}$

Similarly, given a luma sample in the low-resolution frame at position (x, y) in units of single luma samples of the low-resolution picture, its corresponding position in the high-resolution field (p_(x,L), p_(y,L)) in units of one-sixteenth luma samples of the high-resolution field may be derived as:

$\begin{matrix} \left\{ {\begin{matrix} {p_{x,L} = {{{16 \cdot x_{orig}} + \left\lbrack {{x \cdot w_{extract} \cdot 16} + {8 \cdot \left( {w_{extract} - w_{base}} \right)}} \right\rbrack}//w_{base}}} \\ {p_{y,L} = {{{16 \cdot y_{orig}^{\prime}} + \left\lbrack {{y \cdot h_{extract} \cdot 16} + {8 \cdot \left( {h_{extract} - h_{base}^{\prime}} \right)}} \right\rbrack}//h_{base}^{\prime}}} \end{matrix}.} \right. & (13) \end{matrix}$

Given a chroma sample in the low-resolution frame at position (x_(c), y_(c)) in units of single chroma samples of the low-resolution picture, its corresponding position in the high-resolution field (p_(x,c), p_(y,c)) in units of one-sixteenth chroma samples of the high-resolution field may be derived as:

$\begin{matrix} \left\{ {\begin{matrix} {p_{x,c} = {{{16 \cdot x_{{orig},c}} + \left\lbrack {{x_{c} \cdot w_{{extract},c} \cdot 16} + {{4 \cdot \left( {2 + p_{{base},x}} \right)}w_{{extract},c}} - {{4 \cdot \left( {2 + p_{{enh},x}} \right)}w_{{base},c}}} \right\rbrack}//w_{{base},c}}} \\ {p_{y,c} = {{{16 \cdot y_{{orig},c}^{\prime}} + \left\lbrack {{y_{c} \cdot h_{{extract},c} \cdot 16} + {{2 \cdot \left( {4 + \phi_{{base},y}} \right)}h_{{extract},c}} - {{2 \cdot \left( {4 + \phi_{{enh},y}} \right)}h_{{base},c}^{\prime}}} \right\rbrack}//h_{{base},c}^{\prime}}} \end{matrix}.} \right. & (14) \end{matrix}$

Eqs. 11-14 can also be backward compatible with Eqs. 1-4, and therefore, the proposed field-to-frame resampling process may be related to the frame-to-frame resampling process.

Frame-To-Frame Resampling—Special Case

A special case for frame-to-frame resampling is that the base progressive frame is coincided with a field of the enhancement frame (of two fields with different presentation time codes).

The two-stage processes described above in relation to field-to-frame resampling can be applied together with the process described above in relation to frame-to-field resampling.

Interpolation—Up-Sampling

In some embodiments, interpolating the enhancement-layer image value at sample position (x, y) in the enhancement spatial picture comprises a filtering process. The filtering process may further comprise determining interpolation-filter coefficients from a look-up-table wherein the index into the look-up-table may be related to the interpolation position determined by (p_(x,L)(x), p_(y,L)(y)).

In some embodiments, the interpolation filter may be a 4-tap filter. In some embodiments, the interpolation filter may be a 6-tap filter. In some embodiments, the filter coefficients may be derived from the two-lobed or three-lobed Lanczos-windowed sinc functions.

Table 1 and Table 2 comprise exemplary look-up-tables of interpolation-filter coefficients for a 16phase 6-tap interpolation filter wherein the phase corresponds to the interpolation position determined by (p_(x,L)(x), p_(y,L)(y)).

TABLE 1 (6-tap) interpolation filter coefficients phase e[−2] e[−1] e[0] e[1] e[2] e[3] 0 0 0 32 0 0 0 1 0 −2 32 2 0 0 2 1 −3 31 4 −1 0 3 1 −4 30 7 −2 0 4 1 −4 28 9 −2 0 5 1 −5 27 11 −3 1 6 1 −5 25 14 −3 0 7 1 −5 22 17 −4 1 8 1 −5 20 20 −5 1 9 1 −4 17 22 −5 1 10 0 −3 14 25 −5 1 11 1 −3 11 27 −5 1 12 0 −2 9 28 −4 1 13 0 −2 7 30 −4 1 14 0 −1 4 31 −3 1 15 0 0 2 32 −2 0

TABLE 2 (6-tap) interpolation filter coefficients phase e[−2] e[−1] e[0] e[1] e[2] e[3] 0 0 0 32 0 0 0 1 0 −2 32 2 0 0 2 1 −3 31 4 −1 0 3 1 −4 30 6 −1 0 4 1 −4 28 9 −2 0 5 1 −4 27 11 −3 0 6 1 −5 25 14 −3 0 7 1 −5 22 17 −4 1 8 1 −5 20 20 −5 1 9 1 −4 17 22 −5 1 10 0 −3 14 25 −5 1 11 0 −3 11 27 −4 1 12 0 −2 9 28 −4 1 13 0 −1 6 30 −4 1 14 0 −1 4 31 −3 1 15 0 0 2 32 −2 0

Table 3 comprises a look-up-table of interpolation-filter coefficients for a 16-phase 4-tap interpolation filter wherein the phase corresponds to the interpolation position determined by (p_(x,L)(x), p_(y,L)(y)).

TABLE 3 (4-tap) interpolation filter coefficient phase e[−1] e[0] e[1] e[2] 0 0 128 0 0 1 −4 127 5 0 2 −8 124 13 −1 3 −10 118 21 −1 4 −11 111 30 −2 5 −11 103 40 −4 6 −10 93 50 −5 7 −9 82 61 −6 8 −8 72 72 −8 9 −6 61 82 −9 10 −5 50 93 −10 11 −4 40 103 −11 12 −2 30 111 −11 13 −1 21 118 −10 14 −1 13 124 −8 15 0 5 127 −4 Texture Interpolation Process: Prediction

Inputs to this process include:

-   -   integer luma sample positions in base picture (xB, yB) and (xB1,         yB1),     -   a luma sample array for the base picture base_(L)[x, y] with         x=−2+xB..(xB1+2) and y=−2+yB..(yB1+2),     -   when chroma_format_idc is not equal to 0,         -   integer chroma sample positions in base picture (xCB, yCB)             and (xCB1, yCB1),         -   two chroma sample arrays for the base picture base_(Cb)[x,             y] and base_(Cr)[x, y] with x=−2+xCB..(xCB1+2) and             y=−2+yCB..(yCB1+2).

Outputs of this process include:

-   -   a luma sample macroblock array pred_(L)[x, y] with x=0..15 and         y=0..15,     -   when chroma_format_idc is not equal to 0, two chroma sample         macroblock arrays pred_(Cb)[x, y] and pred_(Cr)[x, y] with         x=0..MbWidthC−1 and y=0..MbHeightC−1.

The luma samples pred_(L)[x, y] with x=0..15 and y=0..15 are derived as follows.

-   -   Let temp_(L)[x, y] with x=−2+xB..(xB1+2) and y=0..15 be a         temporary luma sample array.     -   Each temp_(L)[x, y] with x=−2+xB..(xB1+2) and y=0..15 is derived         as follows:         -   The corresponding fractional-sample position yf in base             layer is derived as follows:             -   yf=p_(y,L)(y+yP).         -   Let yInt and yFrac be defined as follows:             -   yInt=(yf>>4) and             -   yFrac=yf % 16.         -   Select a six-tap filter e[j] with j=−2..3 from Table 1 using             yFrac as phase, and derive temp_(L)[x, y] as:         -   temp_(L)[x, y]=             -   base_(L)[x, yInt−2]*e[−2]+base_(L)[x,                 yInt−1]*e[−1]+base_(L)[x, yInt]*e[0]+             -   base_(L)[x, yInt+1]*e[1]+base_(L)[x,                 yInt+2]*e[2]+base_(L)[x, yInt+3]*e[3].     -   Each sample pred_(L)[x, y] with x=0..15 and y=0..15 is derived         as follows:         -   The corresponding fractional-sample position xf in base             layer is derived as follows:             -   xf=p_(x,L)(x+xP).         -   Let xInt and xFrac be defined as follows:             -   xInt=(xf>>4) and             -   xFrac=xf % 16.         -   Select a six-tap filter e[j] with j=−2..3 from Table 1 using             xFrac as phase, and derive pred_(L)[x, y] as:         -   pred_(L)[x, y]=Clip1 _(Y)((             -   temp_(L)[xInt−2, y ]*e[−2]+temp_(L)[xInt−1,                 y]*e[1]+temp_(L)[xInt, y]*e[0]+             -   temp_(L)[xInt+1, y]*e[1]+temp_(L)[xInt+2,                 y]*e[2]+temp_(L)[xInt+3, y]*e[3]+512)/1024),         -   with         -   Clip1 _(Y)(x)=min(max(0, x), (1<<BitDepth_(Y))−1)         -   in which BitDepth_(Y) represents the bit depth of the luma             channel data.

When chroma_format_idc is not equal to 0, the chroma samples pred_(C)[x, y] (with C denoting each Cb and Cr) with x=0..MbWidthC−1, y=0..MbHeightC−1 are derived as follows.

-   -   Let tmp1 _(Cb)[x, y] and tmp1 _(Cr)[x, y] with         x=−2+xCB..(xCB1+2) and y=0..MbHeightC−1 be temporary chroma         sample arrays.     -   Each temp_(C)[x, y], with C as Cb and Cr, x=−2+xCB..(xCB1+2),         and y=0..MbHeightC−1 is derived as follows:         -   The corresponding fractional-sample position yfC in base             layer is derived as follows:             -   yfC=p_(y,c)(y+yC).         -   Let yIntC and yFracC be defined as follows:             -   yIntC=(yfC>>4) and             -   yFracC=yfC % 16.         -   Select a six-tap filter e[j] with j=−2..3 from Table 1 using             yFracC as phase, and derive temp_(C)[x, y] as:         -   temp_(C)[x, y]=             -   base_(C)[x, yIntC−2]*e[−2]+base_(C)[x,                 yIntC−1]*e[−1]+base_(C)[x, yIntC]*e[0]+             -   base_(C)[x, yIntC+1]*e[1]+base_(C)[x,                 yIntC+2]*e[2]+base_(C)[x, yIntC+3]*e[3].     -   Each sample pred_(C)[x, y] with C as Cb and Cr, x=0..MbWidthC−1         and y=0..MbHeightC−1 is derived as follows:         -   The corresponding fractional-sample position xfC in base             layer is derived as follows:             -   xfC=p_(x,C)(x+xC).         -   Let xIntC and xFracC be defined as follows             -   xIntC=(xfC>>4) and             -   xFracC=xfC % 16.         -   Select a six-tap filter e[j] with j=−2..3 from Table 1 using             xFracC as phase, and derive pred_(C)[x, y] as             -   pred_(C)[x, y]=Clip1 _(C)((             -   temp_(C)[xIntC−2, y]*e[−2]+temp_(C)[xIntC−1,                 y]*e[−1]+temp_(C)[xIntC, y]*e[0]             -   +temp_(C)[xIntC+1, y]*e[1]+temp_(C)[xIntC+2, y]*e[2]+             -   temp_(C)[xIntC+3, y]*e[3]+512)/1024),         -   with         -   Clip1 _(C)(x) min(max(0, x), (1<<BitDepth_(C))−1)         -   in which BitDepth_(C) represents the bit depth of the chroma             channel data.             Texture Interpolation Process: Residual

Inputs to this process include:

-   -   integer luma sample positions in base picture, basePic, (xB, yB)         and (xB1, yB1),     -   a luma residual sample array resBase_(L)[x, y] with x=−xB..xB1         and y=yB..yB1,     -   when chroma_format_idc is not equal to 0,         -   integer chroma sample positions in base picture, basePic,             (xCB, yCB) and (xCB1, yCB1),         -   two chroma residual sample arrays resBase_(Cb)[x, y] and             resBase_(Cr)[x, y] with x=xCB..xCB1 and y=yCB..yCB1.

Outputs of this process include:

-   -   a luma sample array resPred_(L)[x, y] with x=0..15 and y=0..15.     -   when chroma_format_idc is not equal to 0, two chroma sample         arrays resPred_(Cb)[x, y] and resPred_(Cr)[x, y] with         x=0..MbWidthC−1 and y=0..MbHeightC−1.

The luma residual samples resPred_(L)[x, y] with x=0..15 and y=0..15 are derived as follows.

-   -   Let temp_(L)[x, y] with x=xB..xB1 and y=0..15 be a temporary         luma sample array.     -   Each temp_(L)[x, y] with x=xB..xB1 and y=0..15 is derived as         follows:         -   The corresponding fractional-sample position yf in base             layer is derived as follows:             -   yf=p_(y,L)(y+yP).         -   Let yInt and yFrac be defined as follows:             -   yInt=(yf>>4) and             -   yFrac=yf % 16.         -   Derive temp_(L)[x, y] as             -   temp_(L)[x, y]=resBase_(L)[x,                 yInt]*(16−yFrac)+resBase_(L)[x, yInt+1]*yFrac.     -   Each residual sample resPred_(L)[x, y] with x=0..15 and y=0..15         is derived as follows:         -   The corresponding fractional-sample position xf in base             layer is derived as follows:             -   xf=p_(x,L)(x+xP).         -   Let xInt and xFrac be defined as follows:             -   xInt=(xf>>4) and             -   xFrac=xf % 16.         -   Derive resPred_(L)[x, y] as             -   resPred_(L)[x, y]=                 -   (temp_(L)[xInt, y]*(16−xFrac)+temp_(L)[xInt+1,                     y]*xFrac)/256.

When chroma_format_idc is not equal to 0, the chroma residual samples resPred_(C)[x, y] (with C being Cb or Cr) with x=0..MbWidthC−1, y=0..MbHeightC−1 are derived as follows.

-   -   Let tmp1 _(Cb)[x, y] and tmp1 _(Cr)[x, y] with x=xCB..xCB1 and         y=0..MbHeightC−1 be temporary chroma sample arrays.     -   Each temp_(C)[x, y] with C as Cb and Cr, x=xCB..xCB1, and         y=0..MbHeightC−1 is derived as follows:         -   The corresponding fractional-sample position yfC in base             layer is derived as follows:             -   yfC=p_(y,c)(y+yC).         -   Let yIntC and yFracC be defined as follows:             -   yIntC=(yfC>>4) and             -   yFracC=yfC % 16.         -   Derive temp_(C)[x, y] as             -   temp_(C)[x, y]=                 -   resBase_(C)[x, yIntC]*(16−yFracC)+resBase_(C)[x,                     yIntC+1]*yFracC.     -   Each sample resPred_(C)[x, y] with C as Cb and Cr,         x=0..MbWidthC−1 and y=0..MbHeight−1 is derived as follows:         -   The corresponding fractional-sample position xfC in base             layer is derived as follows:             -   xfC=p_(x,C)(x+xC).         -   Let xIntC and xFracC be defined as follows:             -   xIntC=(xfC>>4) and             -   xFracC=xfC % 16.         -   Derive resPred_(C)[x, y] as             -   resPred_(C)[x, y]=             -   (temp_(C)[xIntC, y]*(16−xFracC)+temp_(C)[xIntC+1,                 y]*xFracC)/256.

Block-Based Residual Upsampling Embodiments

Embodiments of the present invention comprise methods and systems for block-based residual upsampling of image frames or fields or portions thereof.

In the current SVC extension of H.264 (in Joint Draft version 4, JVT-Q202), the residual signal upsampling process is based on a transform-block-based bi-linear interpolation, which is not applied across boundaries between transform blocks. The interpolated residual signal may then be used as a prediction signal for the enhancement layer. The interpolation filter is not applied across boundaries between transform blocks; the block boundaries may be extended by constant border extension. A transform block for the luma channel may be 4×4, 8×8, or 16×16, depending on the coding mode. A potential problem is that the block-based decision requires a certain amount of memory access (to the coding mode and/or transform flag) and causes inconsistency in upsampling operations from block to block.

Embodiments of the present invention may comprise a fixed-size, residual upsampling block that may or may not be related to the transform block size. In some embodiments, the upsampling block size may be fixed throughout an image, while the transform block size varies between macroblocks or even within a macroblock. In these embodiments, a transform block size may vary between 4×4, 8×8, 8×4, 16×16 or other sizes, while the residual upsampling block size is fixed at a constant size. In some embodiments, the residual upsampling block size may be fixed at 8×8. These embodiments obviate the need to access or manipulate transform block data to perform residual upsampling.

Some embodiments of the present invention may be described with reference to FIG. 9. In these embodiments, a target pixel 90 in an enhancement layer 92 may be predicted by finding a corresponding base layer location 91 in an underlying base layer 96. The base layer may have been encoded using transform macroblocks, such as transform macroblock 98, which may be further divided into transform blocks of varying size. In FIG. 9, transform macroblocks and their subdivisions are shown as dashed lines. Exemplary transform macroblock 98 is shown bounded by a bold dashed line. In this example, transform macroblock 98 may be divided into quadrants 93, 95, 97 and 99 with different transform block configurations. Transform macroblock 98, a 16×16 transform macroblock in this example, may have an upper right quadrant 93 that is subdivided into 4×4 transform blocks, an upper left quadrant 95 subdivided into 8×4 transform blocks, a lower left quadrant 97 as a 16×16 transform block and a lower right quadrant 99 subdivided into 4×8 transform blocks.

While these transform blocks may be used for efficient transformation and encoding of the image, they do not necessarily need to be employed in the residual upsampling process. In fact, dealing with the varying transform block configurations may introduce unnecessary overhead in the residual upsampling process. Embodiments of the present invention may employ a fixed block size for residual upsampling processes. In this exemplary embodiment, the block size may be fixed at an 8×8 size. In this example, an 8×8 upsampling block grid 118 is shown on the base layer image. In some embodiments, such as the example shown in FIG. 9, the residual upsampling block grid may not correspond to any of the transform block boundaries and may exist as a completely independent grid. In other embodiments, the upsampling block grid may correspond to some, but not all transform block boundaries. In this manner, the base layer may be divided into upsampling blocks, such as upsampling block 120.

During the upsampling process, a corresponding base layer location 91 for a target pixel 90 is determined. The residual upsampling block 120 (hatched in FIG. 9) within which the corresponding base layer location falls is also determined. A value for an enhancement layer pixel 91 corresponding to the target pixel location 90 may then be determined by interpolation of values of pixels that fall within the residual upsampling block 120. This value may be determined by bi-linear interpolation using values adjacent to or near the corresponding base layer location 91 and within the residual upsampling block 120 or by other methods using values from within the residual upsampling block 120. When the corresponding base layer location 91 falls along a residual upsampling block boundary, values necessary for interpolation may fall outside the upsampling block boundary. In these cases, values may be filled or estimated based on values found within the upsampling block 120. In this manner, all enhancement layer 92 values may be estimated based on base layer 96 values that fall within a residual upsampling block that comprises the corresponding base layer location for the target enhancement layer pixel.

In some embodiments, the luma residual upsampling of the present invention may be considered as block-based, but with a fixed block size, e.g., 8×8-block-based. In these embodiments, the SVC block-based decision step can be skipped; and the upsampling process becomes consistent through all blocks.

When chroma residual upsampling is set to an 8×8 block-based format also, such as for sequences of typical 4:2:0 color format, from a system design point of view, 8×8 block-based residual upsampling is the most implementation-friendly option. For embodiments tailored for this format, the same residual upsampling module can be applied to all luma and chroma channels. The same rule can be applied to sequences with 4:2:2 or 4:4:4 color formats. Other block sizes may also be applied to these formats and other formats. Fixed block sizes of 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 and other sizes may also be applied to these and other formats.

Some embodiments may also be applied to interlaced materials, e.g., with field-based pictures. For a field-based picture, some embodiments may treat the picture the same as a progressive-frame based picture. Alternative embodiments may consider the upsampling block size to be half of that in a frame-based picture, for example, 16×8, 8×4, or 4×2, etc., i.e., with an aspect ratio of 2:1.

In some embodiments, it is possible to treat the luma and chroma channels differently. For example, the luma upsampling could be 8×8 based, while the chroma upsampling could be MB-based—depending on the color format, the actual chroma block size may vary.

In some embodiments, it is also possible to choose the block size based on the chroma format. For example, 16×8 block based upsampling can be applied to 4:2:2 format data and 16×16 block based can be applied to 4:4:4 data.

The terms and expressions which have been employed in the foregoing specification are used therein as terms of description and not of limitation, and there is no intention in the use of such terms and expressions of excluding equivalence of the features shown and described or portions thereof, it being recognized that the scope of the invention is defined and limited only by the claims which follow. 

1. A method for block-based residual upsampling in a scalable video image, said method comprising: a. in a computing device, dividing a lower-resolution image layer into lower-resolution layer upsampling blocks of a fixed block size; b. determining a lower-resolution layer position corresponding to a higher-resolution layer pixel position; c. identifying one of said lower-resolution layer upsampling blocks in which said lower-resolution layer position is located; and d. interpolating a value for said higher-resolution layer pixel based on data from said identified lower-resolution layer block.
 2. A method as described in claim 1 wherein said upsampling blocks are independent of any transform blocks.
 3. A method as described in claim 1 wherein said upsampling fixed block size is 8×8 for upsampling luma values for a video image in a 4:2:0 format.
 4. A method as described in claim 1 wherein said upsampling fixed block size is 8×4 for upsampling chroma values for a video image in a 4:2:0 format.
 5. A method as described in claim 1 wherein said upsampling fixed block size is 8×4 for upsampling luma values for an interlaced video field in a 4:2:0 format.
 6. A method as described in claim 1 wherein said upsampling blocks comprise some boundaries that are coincident with transform macroblock boundaries.
 7. A method as described in claim 1 wherein said interpolating comprises bi-linear interpolation.
 8. A method as described in claim 1 wherein said interpolating is based solely on values from within said identified lower-resolution layer upsampling block.
 9. A method for block-based residual upsampling in a scalable video image, said method comprising: a. in a computing device, dividing a base layer residual image into base layer upsampling blocks of a fixed block size; b. determining a base layer position corresponding to an enhancement layer residual pixel position; c. identifying one of said base layer upsampling blocks in which said base layer position is located; and d. interpolating a value for said enhancement layer pixel based on data from said identified base layer upsampling block.
 10. A method as described in claim 9 wherein said upsampling blocks are independent of any transform blocks.
 11. A method as described in claim 9 wherein said upsampling fixed block size is 8×8 for upsampling luma values for a video image in a 4:2:0 format.
 12. A method as described in claim 9 wherein said upsampling fixed block size is 8×4 for upsampling chroma values for a video image in a 4:2:0 format.
 13. A method as described in claim 9 wherein said upsampling fixed block size is 8×4 for upsampling luma values for an interlaced video field in a 4:2:0 format.
 14. A method as described in claim 9 wherein said upsampling blocks comprise some boundaries that are coincident with transform macroblock boundaries.
 15. An apparatus for block-based residual upsampling in a scalable video image, said apparatus comprising: a. a divider for dividing a base layer residual image into base layer upsampling blocks of a fixed block size; b. a locator for determining a base layer position corresponding to an enhancement layer residual pixel position; c. an identifier for identifying one of said base layer upsampling blocks in which said base layer position is located; and d. an interpolator for interpolating a value for said enhancement layer pixel based on data from said identified base layer upsampling block.
 16. An apparatus as described in claim 15 wherein said upsampling blocks are independent of any transform blocks.
 17. An apparatus as described in claim 15 wherein said upsampling fixed block size is 8×8 for upsampling luma values for a video image in a 4:2:0 format.
 18. An apparatus as described in claim 15 wherein said upsampling fixed block size is 8×4 for upsampling chroma values for a video image in a 4:2:0 format.
 19. An apparatus as described in claim 15 wherein said upsampling fixed block size is 8×4 for upsampling luma values for an interlaced video field in a 4:2:0 format.
 20. An apparatus as described in claim 15 wherein said upsampling blocks comprise some boundaries that are coincident with transform macroblock boundaries. 